
%一致性检验函数
%传入参数A：不一致矩阵
%返回值CR：一致性比例
%返回值MaxD：最大特征值
%返回值MaxV：最大特征值对应的特征向量
function [CR,MaxV,MaxD]=ConsistencyTest(A)
    [m,n]=size(A);
    if m~=n
        error("输入的矩阵不是方阵");
    else
        %计算方阵特征值
        [V,D]=eig(A);
        MaxD=max(D,[],"all");
        [r,c]=find(D == MaxD, 1);
        disp('特征值法求权重的结果为：');
        disp( V(:,c) ./ sum(V(:,c)) )
        %计算一致性指标
        CI=(MaxD/(n-1+eps);
        %查表找到对应的平均随机一致性指标
        ri=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
        RI=ri(n);
        %计算一致性比例
        CR=CI/(RI+eps);
    end
    disp(CI);disp(RI);disp(CR);
    return;
end

